home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / G-Games / (c)ge.d64 / grandprix.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  5KB  |  155 lines

  1. 0 REM GRANDPRIX BY C.R.WRIGHT
  2. 1 REM
  3. 2 POKE53280,1:POKE53281,1:POKE646,15:GOTO2000
  4. 3 PRINTCHR$(8):HS=0:DIMTR$(17)
  5. 5 PRINT"[147][154]DO YOU REQUIRE INSTRUCTIONS (Y OR N)"
  6. 6 GETA$:IFA$=""THEN6
  7. 7 IFA$="N"THEN10
  8. 8 IFA$="Y"THEN1000
  9. 9 GOTO6
  10. 10 PRINT"[147]";:S=0
  11. 12 SN=54272:LN=SN:HN=SN+1:VL=SN+24:WV=SN+4:AD=SN+5
  12. 13 REM INITIAL SETUP AND MAIN START LOGO
  13. 20 CL$(1)="":CL$(2)="[154]":CL$(3)="[129]":CL$(4)="[150]"
  14. 25 FORI=1TO4:PRINTCL$(I);:GOSUB30:PRINT:NEXT:GOTO90
  15. 30 PRINT"    [166][166] [166][166][166]  [166]  [166] [166] [166][166][166] [166][166][166] [166][166][166] [166] [166] [166]"
  16. 40 PRINT"   [166]   [166] [166] [166] [166] [166][166]  [166] [166] [166] [166] [166] [166] [166] [166] [166]"
  17. 50 PRINT"   [166] [166] [166][166]  [166][166][166] [166][166][166] [166] [166] [166][166][166] [166][166]  [166]  [166]"
  18. 60 PRINT"   [166] [166] [166] [166] [166] [166]  [166][166] [166] [166] [166]   [166] [166] [166] [166] [166]"
  19. 70 PRINT"    [166]  [166] [166] [166] [166] [166] [166] [166][166]  [166]   [166] [166] [166] [166] [166]"
  20. 80 RETURN
  21. 90 PRINT"";
  22. 100 PRINT"";
  23. 105 PRINT"               "
  24. 110 PRINT"[156] BY C.R.WRIGHT "
  25. 115 PRINT"               "
  26. 120 PRINT"";
  27. 130 FORK=1TO3:PRINT"                   ":NEXT
  28. 140 PRINT"[145][145]";
  29. 150 MS$=" A [209]COMPUTERS GAME "
  30. 155 PRINT"";
  31. 160 FORK=1TOLEN(MS$):PRINTMID$(MS$,K,1);:FORI=1TO30:NEXT:NEXT:PRINT
  32. 170 PRINT"";
  33. 180 PRINT"        [144] PRESS ANY KEY TO BEGIN[154]";
  34. 190 A=PEEK(197):IFA=64THEN190
  35. 199 REM LEVEL SELECT
  36. 200 PRINT"[147]"
  37. 201 PRINT"[150]SELECT LEVEL:-"
  38. 202 PRINT"[154]1:TOO EASY, FOR THE NOVICE"
  39. 203 PRINT"2:VERY EASY"
  40. 204 PRINT"3:EASIER, FOR THE BEGINNER"
  41. 205 PRINT"4:SLIGHTLY EASIER"
  42. 206 PRINT"5:FOR AVERAGE PLAYERS"
  43. 207 PRINT"6:FOR THE ABOVE AVERAGE"
  44. 208 PRINT"7:STILL HARD"
  45. 209 PRINT"8:NEARLY AS HARD AS LEVEL 9"
  46. 210 PRINT"9:VERY HARD, FOR THE EXPERT"
  47. 211 L=PEEK(197):IFL=64THEN211
  48. 212 IFL=56ORL=59ORL=8ORL=11ORL=16ORL=19ORL=24ORL=27ORL=32THEN214
  49. 213 GOTO211
  50. 214 GOSUB4500:POKEAD,240
  51. 215 PRINT"[147]":PC=1024+20:PL=55296+20
  52. 216 REM MORE SETUP ROUTINES
  53. 217 FORK=1TO13:TR$(K)="[160][166]      [166][160]":NEXTK
  54. 218 TR$(14)="[160][166][154] [146]     [166][160]":TR$(15)="[160][166]   [154] [146]  [166][160]"
  55. 219 TR$(16)="[160][166]    [154] [146] [166][160]":TR$(17)="[160][166]  [154] [146]   [166][160]"
  56. 220 TA=15:POKEPC,90:POKEPL,8
  57. 230 FORK=1TO23:PRINTTAB(TA);TR$(1):GOSUB4000:NEXT
  58. 231 POKEPC,90:POKEPL,8
  59. 235 POKE198,0
  60. 240 PRINTTAB(TA+1);"[166][129][192][192][192][192][192][192][166]":D=0
  61. 250 REM MAIN GAME LOOP
  62. 260 POKEPC,90:POKEPL,8:POKEPC-1,32:POKEPC+1,32:D=INT(4*RND(1)+1)
  63. 263 GOSUB4000
  64. 270 IFD=1THENTA=TA-1:IFTA<1THENTA=1
  65. 280 IFD=2THENTA=TA+1:IFTA>29THENTA=29
  66. 290 IFD=3ORD=4THENTA=TA+0
  67. 300 IFL<=40THENF=INT(5*RND(1)+13):PRINTTAB(TA);TR$(F):GOTO305
  68. 301 IFL<=80THENE=INT(10*RND(1)+8):PRINTTAB(TA);TR$(E):GOTO305
  69. 302 IFL>80THENT=INT(17*RND(1)+1):PRINTTAB(TA);TR$(T)
  70. 305 IFPEEK(PC)=102ORPEEK(PC)=96ORPEEK(PC)=160THEN500
  71. 306 POKEPC,90:POKEPL,8:IFL<>0THENFORI=1TOL:NEXT
  72. 308 S=S+1:GETA$:IFA$=""THEN260
  73. 309 IFA$="A"THENPC=PC-1:PL=PL-1:GOSUB4100
  74. 310 IFA$="S"THENPC=PC+1:PL=PL+1:GOSUB4100
  75. 320 GOTO260
  76. 499 REM GAME OVER AND SCORE ROUTINE
  77. 500 POKEPC-40,32:POKEPC-41,32:POKEPC-39,32:POKEPC,87:FORK=4TO7:POKEPL,K
  78. 510 IFK=6THENPOKEPL,14
  79. 520 FORZ=1TO50:NEXT:NEXT:GOSUB4200
  80. 530 PRINT"[147]              [154]GAME[146] OVER[146]"
  81. 540 PRINT"YOUR SCORE WAS:";
  82. 550 LE=ABS(LE-10):S=S*LE:PRINT"[150]";S:PRINT"HIGH SCORE IS:";HS;"[154]"
  83. 590 IFS<HSTHEN700
  84. 600 IFS=HSTHEN650
  85. 610 PRINT"[156]YOU HAVE THE NEW HIGH SCORE, WELL DONE!!":GOSUB4300:HS=S
  86. 630 PRINT"THE NEW HIGH SCORE IS:";HS:GOTO700
  87. 650 PRINT"[156]YOU HAVE EQUALED THE HIGH SCORE!":PRINT"WELL DONE!":GOTO700
  88. 700 PRINT"[129]PRESS F1[146] TO FINISH GAME AND"
  89. 710 PRINT"ANYTHING ELSE FOR ANOTHER"
  90. 720 A=PEEK(197):IFA=64THEN720
  91. 730 IFA<>4THEN10
  92. 740 PRINT"[147][154]";CHR$(9);:POKE808,237:POKE198,0:END
  93. 1000 REM INSTRUCTIONS
  94. 1010 PRINT"[147]";:GOSUB30
  95. 1020 PRINT"                [150]BY C.R.WRIGHT 1983"
  96. 1030 PRINT"[154]";
  97. 1040 PRINT"  THE OBJECT OF THIS GAME IS TO GET AS"
  98. 1050 PRINT"FAR INTO THE RACING TRACK AS POSSIBLE"
  99. 1060 PRINT"WITH YOUR CAR [129][218][154]. THE TRACK IS BORDERED"
  100. 1070 PRINT"WITH BEACONS [166]      [166][154] AND THERE ARE ALSO";
  101. 1080 PRINT"MANY OBSTACLES  [146] TO AVOID."
  102. 1090 PRINT"  YOUR CONTROLS ARE AS FOLLOWS:-"
  103. 1100 PRINT
  104. 1110 PRINT"            [156]A[154] - [156][218][154] - [156]S[154]"
  105. 1120 PRINT"  THERE ARE 9 LEVELS OF PLAY AND THE"
  106. 1130 PRINT"HARDER THE LEVEL THE MORE OBSTACLES AND"
  107. 1140 PRINT"THE MORE SPEED!!!"
  108. 1160 PRINT"[144]PRESS ANY KEY TO BEGIN[154]"
  109. 1170 GETA$:IFA$=""THEN1170
  110. 1180 GOTO10
  111. 2000 REM INITIALIZE ROUTINE AND MACHINE          CODE DATA
  112. 2010 PRINT"[147][150]PLEASE WAIT[154]":RESTORE
  113. 2030 FORE=49152TO49283:READN:POKEE,N:NEXT
  114. 2040 SYS49152:CLR:SYS49161
  115. 2045 FORE=49152TO49283:READN:NEXT
  116. 2050 FORE=1TO6:READN:FORJ=1TO8:READN(J):NEXT:QZ=0
  117. 2060 FORK=12288+(8*N)TO12288+(8*N)+7:QZ=QZ+1:POKEK,N(QZ):NEXT:NEXTE
  118. 2070 POKE808,239:GOTO3
  119. 3000 DATA169,48,141,52,0,141,56,0,96,169,0,141,14,220,169,51,141,1,0,162,0,189
  120. 3010 DATA0,208,157,0,48,189,0,209,157,0,49,189,0,210,157,0,50,189,0,211,157,0
  121. 3020 DATA51,189,0,212,157,0,52,189,0,213,157,0,53,189,0,214,157,0,54,189,0,215
  122. 3030 DATA157,0,55,232,224,255,208,203,173,255,208,141,255,48,173,255,209,141
  123. 3040 DATA255,49,173,255,210,141,255,50,173,255,211,141,255,51,173,255
  124. 3050 DATA212,141,255,52,173,255,213,141,255,53,173,255,214,141,255,54,169,55
  125. 3060 DATA141,1,0,169,1,141,14,220,169,28,141,24,208,96
  126. 3070 REM CHARACTER DATA
  127. 3080 DATA90,195,255,219,24,219,255,219,24
  128. 3090 DATA102,255,255,66,90,90,66,255,255
  129. 3100 DATA160,255,129,189,189,189,189,129,255
  130. 3110 DATA81,240,216,240,216,247,12,12,7
  131. 3120 DATA0,60,66,157,161,161,157,66,60
  132. 3130 DATA87,130,85,154,16,8,178,77,130
  133. 3999 REM SOUND SUBROUTINES
  134. 4000 POKEVL,15:POKEWV,32:POKEHN,55:POKELN,55:POKEVL,0:RETURN
  135. 4100 POKEVL,15:POKEWV,32:POKEHN,255:POKELN,255:POKEVL,0:RETURN
  136. 4200 POKEAD,9:POKEWV,129:POKEHN,3:POKELN,0
  137. 4210 FORQ=15TO12STEP-.01:POKEVL,Q:NEXT
  138. 4220 POKEWV,128:POKEVL,0:RETURN
  139. 4300 POKEAD,9:POKEWV,17:POKEHN,45:POKELN,55
  140. 4310 FORQ=15TO0STEP-.1:POKEVL,Q:NEXT
  141. 4320 POKEWV,16:RETURN
  142. 4500 REM LEVEL OF PLAY CONVERSIONS
  143. 4510 IFL=56THENLE=1
  144. 4520 IFL=59THENLE=2
  145. 4530 IFL=8THENLE=3
  146. 4540 IFL=11THENLE=4
  147. 4550 IFL=16THENLE=5
  148. 4560 IFL=19THENLE=6
  149. 4570 IFL=24THENLE=7
  150. 4580 IFL=27THENLE=8
  151. 4590 IFL=32THENLE=9
  152. 4600 L=ABS(LE-9)*14.5
  153. 4605 LE=ABS(LE-10)
  154. 4610 RETURN
  155.